<!doctype html>
<html>		
		<head>
			<meta charset="utf-8">
			<script src="js/angular.min.js"></script>
		</head>
		<body ng-app="xmpl">
			 <div ng-controller="XmplController">
		      {{ greeting }}!
		    </div>
		</body>

		<script type="text/javascript">
		angular.module('xmpl.service', []).
		  value('greeter', {
		    salutation: 'Hello',
		    localize: function(localization) {
		      this.salutation = localization.salutation;
		    },
		    greet: function(name) {
		      return this.salutation + ' ' + name + '!';
		    }
		  }).
		  value('user', {
		    load: function(name) {
		      this.name = name;
		    }
		  });

		angular.module('xmpl.directive', []);

		angular.module('xmpl.filter', []);

		//模块依赖
		angular.module('xmpl', ['xmpl.service', 'xmpl.directive', 'xmpl.filter']).
		  run(function(greeter, user) {
		    // This is effectively part of the main method initialization code
		    greeter.localize({
		      salutation: 'Bonjour'
		    });
		    user.load('World');
		  })


		// A Controller for your app
		//参数greeter、user就是依赖注入，来源于上面的xmpl.service
		//控制器依赖注入方式1：推断依赖，参数名称就是依赖
		var XmplController = function($scope, greeter, user) {
		  $scope.greeting = greeter.greet(user.name);
		};

		//控制器依赖注入方式2：先确定依赖名称，后面参数名就可以随意
		// var XmplController = ['$scope', 'greeter', 'user', function(scope, greets, us) {
		//   scope.greeting = greets.greet(us.name);
		// }];

		//简单配置模块
		// angular.module('myModule', []).
		//   value('a', 123).
		//   factory('a', function() { return 123; }).
		//   directive('directiveName', ...).
		//   filter('filterName', ...);

		//工场方法负责创建AngularJS中的大部分对象。比如指令，服务，过滤器。工厂方法一般在模块中使用，推荐的方法如下：
		// angualar.module('myModule', []).
		// value('value', 123).
		// config(['depProvider',
		// 	function(depProvider) {
		// 			...
		// 	}
		// ]).
		// factory('serviceId', ['depService',
		// 	function(depService) {
		// 			...
		// 	}
		// ]).
		// directive('directiveName', ['depService',
		// 	function(depService) {
		// 			...
		// 	}
		// ]).
		// filter('filterName', ['depService',
		// 	function(depService) {
		// 			...
		// 	}
		// ]).
		// run(['depService',
		// 	function(depService) {
		// 			...
		// 	}
		// ]);
		</script>
</html>
